<template>
  <section class="jumbotron">
    <h3 class="jumbotron-heading">Search Github Users</h3>
    <div>
      <input type="text" placeholder="enter the name you search" v-model="keyWord" />&nbsp;
      <button @click="searchUsers">Search</button>
    </div>
  </section>
</template>

<script>
import axios from 'axios'

export default {
  name: 'Search',
  data() {
    return {
      keyWord: ''
    }
  },
  methods: {
    searchUsers() {
      /*初始化数据
      *       info: {   isFirst: true,   isLoading: false,   errMsg: '',    users: []     }
      * */

      //请求前更新List的数据 ，直接传递一个对象  初次使用        无错误信息     无用户信息       除非刷新页面，否则不会有 true
      this.$bus.$emit('updateListData', {isLoading: true, errMsg: '', users: [], isFirst: false})

      //使用 vue-resource 库，Vue.use(vueResource) 注册插件，直接使用this.$http.get


      axios.get(`https://api.github.com/search/users?q=${this.keyWord}`).then(
          response => {
            console.log('请求成功了')
            console.log('GithubSearch searchUsers data:', response.data)

            // 调用$emit触发自定义事件
            //请求成功后更新List的数据            请求有结果         没有错误信息    获取用户数据
            this.$bus.$emit('updateListData', {isLoading: false, errMsg: '', users: response.data.items})
          },
          error => {
            //请求后更新List的数据            请求有结果         有错误信息    失败后要清空，无用户数据
            this.$bus.$emit('updateListData', {isLoading: false, errMsg: error.message, users: []})
          }
      )
    }
  },
}
</script>
